// brandManage/pages/goodsManage/goodsManage.js
var common = require("../../../common/common.js").common;

var {$author: $author} = require("../../../components/base/authorization.js");

const app = getApp();

Page({
    /**
   * 页面的初始数据
   */
    data: {
        chooseClass: 1,
        keyWord: "",
        page: 1,
        limit: 10,
        details: []
    },
    /**
   * 生命周期函数--监听页面加载
   */
    onLoad: function(options) {
        let that = this;
        this.setData({
            domain: app.globalData.domain.slice(0, -10)
        });
        wx.hideShareMenu();
        that.getData();
    },
    /**
   * 生命周期函数--监听页面初次渲染完成
   */
    onReady: function() {},
    /**
   * 生命周期函数--监听页面显示
   */
    onShow: function() {},
    /**
   * 生命周期函数--监听页面隐藏
   */
    onHide: function() {},
    /**
   * 生命周期函数--监听页面卸载
   */
    onUnload: function() {},
    /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
    onPullDownRefresh: function() {
        let that = this;
        that.setData({
            page: 1,
            details: []
        });
        that.getData();
        wx.stopPullDownRefresh();
    },
    /**
   * 页面上拉触底事件的处理函数
   */
    onReachBottom: function() {
        let that = this;
        that.getData();
    },
    /**
   * 用户点击右上角分享
   */
    onShareAppMessage: function() {},
    saveWord: function(e) {
        let that = this;
        that.setData({
            keyWord: e.detail.value,
            page: 1,
            details: []
        });
        that.getData();
    },
    //手指触摸动作开始 记录起点X坐标
    touchstart: function(e) {
        //开始触摸时 重置所有删除
        this.data.details.forEach(function(v, i) {
            if (v.isTouchMove) //只操作为true的
            v.isTouchMove = false;
        });
        this.setData({
            startX: e.changedTouches[0].clientX,
            startY: e.changedTouches[0].clientY,
            details: this.data.details
        });
    },
    //滑动事件处理
    touchmove: function(e) {
        var that = this, index = e.currentTarget.dataset.index, //当前索引
        startX = that.data.startX, //开始X坐标
        startY = that.data.startY, //开始Y坐标
        touchMoveX = e.changedTouches[0].clientX, //滑动变化坐标
        touchMoveY = e.changedTouches[0].clientY, //滑动变化坐标
        //获取滑动角度
        angle = that.angle({
            X: startX,
            Y: startY
        }, {
            X: touchMoveX,
            Y: touchMoveY
        });
        that.data.details.forEach(function(v, i) {
            v.isTouchMove = false;
            //滑动超过30度角 return
                        if (Math.abs(angle) > 30) return;
            if (i == index) {
                if (touchMoveX > startX) //右滑
                v.isTouchMove = false; else //左滑
                v.isTouchMove = true;
            }
        });
        //更新数据
                that.setData({
            details: that.data.details
        });
    },
    /**
   * 计算滑动角度
   * @param {Object} start 起点坐标
   * @param {Object} end 终点坐标
   */
    angle: function(start, end) {
        var _X = end.X - start.X, _Y = end.Y - start.Y;
        //返回角度 /Math.atan()返回数字的反正切值
                return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
    },
    chooseStatus: function(e) {
        let that = this;
        that.setData({
            chooseClass: e.currentTarget.dataset.id,
            page: 1,
            details: []
        });
        that.getData();
    },
    getData() {
        let that = this;
        common.request({
            endpoint: "Lodger/lodger/product-list",
            method: "post",
            data: {
                page: that.data.page,
                limit: that.data.limit,
                status: that.data.chooseClass,
                key_word: that.data.keyWord.trim()
            },
            success: res => {
                let details = res.extra;
                if (details.length) {
                    details = that.data.page == 1 ? details : that.data.details.concat(details);
                    that.setData({
                        details: details,
                        page: that.data.page + 1
                    });
                }
            }
        });
    },
    productOperation: function(e) {
        let that = this;
        let method = e.currentTarget.dataset.method;
        let id = e.currentTarget.dataset.id;
        common.request({
            endpoint: "Lodger/lodger/product-operation",
            method: "post",
            data: {
                id: id,
                method: method
            },
            success: res => {
                wx.showModal({
                    title: "提示",
                    content: "操作成功"
                });
                that.setData({
                    page: 1,
                    details: []
                });
                that.getData();
            }
        });
    },
    goToUrl: function(e) {
        let that = this;
        wx.navigateTo({
            url: e.currentTarget.dataset.url
        });
    }
});